package cz.worktracker.validators;

import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.component.UIInput;
import javax.faces.context.FacesContext;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

/**
 * EmailValidator
 * Validátor kontrolující správnost emailu
 * @since 2010-04-22
 * @author kyjovsky
 */
public class EmailValidator implements Validator {

    public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException
    {
        String enteredEmail = (String)value;
        //Regulární výraz
        Pattern p = Pattern.compile(".+@.+\\.[a-z]+");
        
        //Porovnání emailu se vzorem
        Matcher m = p.matcher(enteredEmail);
        
        //Kontrola, zda byla nalezena shoda
        boolean matchFound = m.matches();
        
        if (!matchFound) {
            FacesMessage message = new FacesMessage(((UIInput)component).getValidatorMessage());
            throw new ValidatorException(message);
        }
    }
}
